package com.colin.redis.cluster.main;

import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.JedisCluster;
import redis.clients.jedis.JedisPoolConfig;
import redis.clients.jedis.JedisSentinelPool;

import java.util.HashSet;
import java.util.Set;

/**
 * {@code @Info}
 *
 * @author 777
 * {@code @date} 2024-04-27
 * {@code @time} 下午7:36
 */
public class Main {
    public static void main(String[] args) {

        // 每一个集群节点的host 和 port封装为一个HostAndPort对象
        // 将所有集群节点放入一个set集合中
        Set<HostAndPort> nodes = new HashSet<HostAndPort>();
        nodes.add(new HostAndPort("47.120.8.23", 6380));
        nodes.add(new HostAndPort("47.120.8.23", 6381));
        nodes.add(new HostAndPort("117.72.38.138", 6380));
        nodes.add(new HostAndPort("117.72.38.138", 6381));
        nodes.add(new HostAndPort("82.157.174.60", 6380));
        nodes.add(new HostAndPort("82.157.174.60", 6381));


        // 准备连接池的配置信息
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        // 最大连接数
        jedisPoolConfig.setMaxTotal(100);
        // 最大空闲连接数
        jedisPoolConfig.setMaxIdle(10);

        // 用连接池 构建JedisCluster对象
        JedisCluster jedisCluster = new JedisCluster(
                nodes, // 集群节点
                6000,  // 获取连接的超时时间
                5000, // 读取数据的超时时间
                10, // 最大连接尝试次数
                jedisPoolConfig // 连接池配置信息对象
        );

        String testKey = jedisCluster.get("test");
        System.out.println(testKey);

        jedisCluster.close();

    }
}
